草庐IT

TypeScript 条件语句

全部标签

javascript - 在 Typescript 中为 `this` 关键字键入注释

我有一个独立函数,旨在使用Function.prototype.call提供的上下文。例如:functionfoo(){returnthis.bar;}>foo.call({bar:"baz"})baz有没有办法在这种情况下为this关键字提供Typescript类型注释? 最佳答案 首先,你可以使用特殊的thisparameter用于识别您期望的对象类型的语法this成为:functionfoo(this:{bar:string}){returnthis.bar;//nomoreerror}如果你直接调用它会有帮助:foo();/

JavaScript ES6 - promise 解决和事件之间可能存在竞争条件?

是否可以在promise解析和promise等待返回之间执行用户代码?functiona(){returnnewPromise(resolve=>{setTimeout(()=>{//Betweenhere...resolve()},1000))}}asyncfunctionb(){awaita()//...andhere?}规范是否强制立即调用Promise回调?我想知道2点之间的虚拟机是否可以处理一个事件,这可能会导致副作用。 最佳答案 不,它不强制立即调用。Thespec在解决一个promise时会经历许多步骤,其中之一是:P

javascript - 我如何解决 'Property ' 宽度'在类型 'HTMLElement' 上不存在。'在 vscode 中使用//@ts-check 类型检查 Javascript(不是 Typescript)时?

在view.js文件中:constcanvas=document.getElementById('canvas');...export{canvas,};在main.js文件中:import*asviewfrom'../src/view.js';...xPosition:view.canvas.width/2,给我'属性'width'在类型'HTMLElement'上不存在。类型检查错误。我不知道如何进行,我对typescript的了解为零,而且程序是用javascript编写的。我读过的所有解决方案都需要使用typescript,这在这个例子中是没有用的。有什么办法可以消除这个错误吗

javascript - typescript : find date difference in dates/hours/minutes

我正在进行日期比较,我正在尝试以日期、小时、分钟的格式计算和显示两个日期之间的差异...日期值存储在数据库中,如下所示:EndDate:2018-11-2910:49:49.9396033PurchaseDate:2018-11-2910:49:07.4154497在我的Angular组件中,我有:letresult=newDate(res.endDate).valueOf()-newDate(res.purchaseDate).valueOf();这导致:42524我不确定它代表什么。我想知道计算两个日期之间时差的正确方法是什么,以及如何以正确且可读的方式显示结果。欢迎任何帮助

javascript - 如何将字符串数组转换为 typescript 类型?

我有这个数组:constarr=["foo","bar","loo"]我需要将它转换为typescript类型typearrTyp="foo"|"bar"|"loo";我如何在typescript中做到这一点? 最佳答案 为3.4及更高版本编辑:在3.4constassertions添加了,所以我们可以使用asconst得到一个字符串字面量类型的元组:constarr=["foo","bar","loo"]asconsttypearrTyp=typeofarr[number];//"foo"|"bar"|"loo"原创问题是arr没

javascript - 如果满足两个条件,则 Javascript 值的总和

这个问题在这里已经有了答案:Groupobjectsbymultiplepropertiesinarraythensumuptheirvalues(16个答案)关闭3年前。如果CategoryId相同,下面的代码会添加金额,并根据CategoryId创建一个新的行项目。self.OriginalLineItems=[{CategoryId:'Cat1',Amount:15,Type:'TypeA'},{CategoryId:'Cat1',Amount:30,Type:'TypeA'},{CategoryId:'Cat1',Amount:20,Type:'TypeB'},{Categor

javascript - Modernizr.load(yepnope.js) IE 条件混淆

在下面的代码中,尽管我使用的是Firefox4.0.1,但dd_belatedpng.js正在加载。根据theyepnope.jsdocumentation,ielt7!前缀应该导致脚本仅在浏览器是低于版本7的IE时加载。是否从Modernizr.load实现中删除了此功能(我相信一个只是其他),或者一个错误,或者,正如我怀疑的那样,我只是遗漏/误解了一些明显的东西?谢谢你的帮助。这是代码。Modernizr.load([{load:'//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js',complete:functio

Javascript 未定义条件

有人能给我解释一下if(obj.x==undefined)和if(typeofobj.x=='undefined')之间的区别吗?在某些情况下,第一种工作正常,但在其他情况下我需要使用第二种方式。问题1-这两个条件有什么区别?2-有最佳实践吗? 最佳答案 最佳做法是不仅要检查真实性,还要检查严格相等例子if(obj.x===undefined){}这曾经是一个问题,因为undefined(全局属性)过去是可写的,从1.8.5开始是不可写的,为您提供了ES5规范环境中的安全比较。根据MDN

javascript - if 条件如何在 javascript 中评估其值

javascriptif条件如何确定它的值?,看这个例子:varbar=("something"==true);alert(bar);//1if("something"){alert("hey!");//2}为什么在//1处的'bar'为假时我会指向//2?正如我所见,bar值的计算方式几乎与if条件相同,或者不是? 最佳答案 "something"==true为false,因为必须将字符串和bool值强制转换为可以比较的类型。但是,if("something")有效,因为非空字符串是真值。

javascript - jQuery 的条件加载

如果浏览器似乎支持HTML5,我正在使用纯JavaScript进行测试,如果支持,我想加载jQuery,然后处理页面的其余部分。否则,将发生一些重定向。varcanvas=document.createElement('canvas');if(canvas&&canvas.getContext&&canvas.getContext('2d')){vars=document.getElementsByTagName('script')[0];varjq=document.createElement('script');jq.type='text/javascript';jq.src='j